The invention relates generally to methods and apparatus for compressing video data, and more particularly to methods and apparatus for compressing digital video and/or audio information.
Multimedia computer systems, hand held Internet appliances and other video display devices are being developed which can capture broadcast quality video at full frame rates. Traditionally, it has been very difficult to achieve full frame rate capture and playback due to high data bandwidth requirements. Three primary bottlenecks include hard drive transfer rates (with, for example, multimedia computer systems), processor power of a central processing unit (CPU) and system bus throughput between the CPU and a video processor or other video capture device. In addition, the enormous amounts of raw data in the audio and video streams requires large amounts of storage capacity.
One solution to dealing with these bottlenecks and limitations has been to use dedicated hardware video compression chips to process the video and greatly reduce the bandwidth requirements. These dedicated chips can typically use motion JPEG or wavelet compression techniques to reduce the raw video from, for example, 18 megabytes/second to around 2 megabytes/second. The dedicated chips can then provide a mechanism for overcoming the issue of bus speed, hard drive transfer rate and disk space requirements. The ability of the dedicated compression chip to compress the video frames asynchronously and independently of the host processor, solves the issue of processing power.
However, drawbacks to using dedicated video compression chips include the cost of the actual ASIC as well as the cost of laying the ASIC out on a video card or other printed circuit board.
It is also known in multimedia computer systems and other videographics processing devices to employ a graphics processing chip or central processing unit with a graphics processing chip for use in displaying video, recording video and playing back video and audio information. It becomes difficult with higher resolution video, such as 640 by 480 and higher, to record video to a hard drive for storage due to the bandwidth requirements. If flames are not recorded and digitized, a person""s eye can detect dropped frames. Other solutions have been to reduce the record and playback resolution. However, this also results in poor image quality. Some video capture systems that employ a JPEG encoding and/or decoding processor often also require a lot of overhead thereby reducing system performance. Other video encoding formats, such as MPEG, utilize a different approach that includes, among other things, the use of key frames and the use of delta frames from which final frames can be reconstructed. However, the receiving of raw or precompressed information requires a suitable compression operation to afford a cost effective product. Moreover, JPEG encoding can result in losses of low frequencies. Accordingly, when a video image is reconstructed, there can be artifacts along block edges during video playback. Accordingly, MPEG and JPEG encoding can suffer from DCT blocking artifacts since these are block-based lossy encoding approaches. Wavelet compression is also a known video compression technique that requires processor intensive operations thereby greatly impacting system performance.
Video information is typically stored as digital luma and digital chroma information. One known type of chroma compression occurs in known videographics processors that convert, for example, YCbCr data to YUV9 format. However, such systems typically do not compress luma information. 3D graphics processing engines and other graphics processors often perform a type of compression technique when converting YCr Cb data to a YUV9 format. For example, such a conversion typically leaves the luma data effectively uncompressed and reduces chroma information (Cr and Cb) as a type of compression technique. This can reduce video storage requirements by reducing information to 56% of its original size. However, this reduction is typically not enough for high resolution video display and compression of relatively uncompressed video information.
Graphics processors are also known that employ overlay engines which allow an image to be overlaid on top of another image for display on a monitor or screen. Such overlay engines typically employ one or more scalers which scale pixel information linearly to reduce the size of a window, for example. Such linear scaling, however, to provide image sizing can be a lossy scaling procedure when, for example, reducing the size of an image from its original size down to a smaller scaled size. In addition, scalers are used to interpolate and increase the image size and in such systems allow interpolation of additional pixels to occur in both the horizontal and vertical directions.
Accordingly, a need exists for a video compression method and apparatus that provides storage of images that have little visual degradation, on a frame by frame basis. In addition, it would be desirable if such a method and apparatus used common hardware components to allow implementation in a cost effective manner on conventional multimedia platforms.